/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.siteusercoupon.entity;

import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 生成投资用户加息券Entity
 * @author thinkgem
 * @version 2017-08-18
 */
public class SiteUserCoupon extends DataEntity<SiteUserCoupon> {
	
	private static final long serialVersionUID = 1L;
	private String userId;		// 用户ID
	private String status;		// 状态（0：待使用 1：已使用 2：已过期）
	private String type;		// 类型（1：注册加息券 2：端午加息券）
	private String name;		// 加息券名称
	private String productType;		// 支持产品类型
	private String amount;		// 加息百分比
	private String activeDays;		// 加息天数
	private String investTimeType;		// 投资期限类型(0:天 1:月)
	private String minInvestTime;		// 起投期限
	private String maxInvestTime;		// 限投期限
	private String minInvestAmount;		// 最小投资金额
	private String maxInvestAmount;		// 最大投资金额
	private Date beginTime;		// 加息券起始时间
	private Date endTime;		// 加息券结束时间
	private Date useTime;		// 加息券使用时间
	private Date createTime;		// 加息券创建时间
	private String field1;		// 扩展字段1
	private String field2;		// 扩展字段2
	private String field3;		// 扩展字段3
	
	public SiteUserCoupon() {
		super();
	}

	public SiteUserCoupon(String id){
		super(id);
	}

	@NotNull(message="用户ID不能为空")
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}
	
	@Length(min=1, max=11, message="状态（0：待使用 1：已使用 2：已过期）长度必须介于 1 和 11 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@Length(min=0, max=11, message="类型（1：注册加息券 2：端午加息券）长度必须介于 0 和 11 之间")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@Length(min=0, max=255, message="加息券名称长度必须介于 0 和 255 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=0, max=11, message="支持产品类型长度必须介于 0 和 11 之间")
	public String getProductType() {
		return productType;
	}

	public void setProductType(String productType) {
		this.productType = productType;
	}
	
	public String getAmount() {
		return amount;
	}

	public void setAmount(String amount) {
		this.amount = amount;
	}
	
	@Length(min=0, max=11, message="加息天数长度必须介于 0 和 11 之间")
	public String getActiveDays() {
		return activeDays;
	}

	public void setActiveDays(String activeDays) {
		this.activeDays = activeDays;
	}
	
	@Length(min=0, max=11, message="投资期限类型(0:天 1:月)长度必须介于 0 和 11 之间")
	public String getInvestTimeType() {
		return investTimeType;
	}

	public void setInvestTimeType(String investTimeType) {
		this.investTimeType = investTimeType;
	}
	
	@Length(min=0, max=11, message="起投期限长度必须介于 0 和 11 之间")
	public String getMinInvestTime() {
		return minInvestTime;
	}

	public void setMinInvestTime(String minInvestTime) {
		this.minInvestTime = minInvestTime;
	}
	
	@Length(min=0, max=11, message="限投期限长度必须介于 0 和 11 之间")
	public String getMaxInvestTime() {
		return maxInvestTime;
	}

	public void setMaxInvestTime(String maxInvestTime) {
		this.maxInvestTime = maxInvestTime;
	}
	
	public String getMinInvestAmount() {
		return minInvestAmount;
	}

	public void setMinInvestAmount(String minInvestAmount) {
		this.minInvestAmount = minInvestAmount;
	}
	
	public String getMaxInvestAmount() {
		return maxInvestAmount;
	}

	public void setMaxInvestAmount(String maxInvestAmount) {
		this.maxInvestAmount = maxInvestAmount;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getBeginTime() {
		return beginTime;
	}

	public void setBeginTime(Date beginTime) {
		this.beginTime = beginTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getUseTime() {
		return useTime;
	}

	public void setUseTime(Date useTime) {
		this.useTime = useTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	@Length(min=0, max=255, message="扩展字段1长度必须介于 0 和 255 之间")
	public String getField1() {
		return field1;
	}

	public void setField1(String field1) {
		this.field1 = field1;
	}
	
	@Length(min=0, max=255, message="扩展字段2长度必须介于 0 和 255 之间")
	public String getField2() {
		return field2;
	}

	public void setField2(String field2) {
		this.field2 = field2;
	}
	
	@Length(min=0, max=255, message="扩展字段3长度必须介于 0 和 255 之间")
	public String getField3() {
		return field3;
	}

	public void setField3(String field3) {
		this.field3 = field3;
	}
	
}